package org.example.day04;

import java.util.Scanner;

/**
 * @author zlxad
 * @version 1.0
 * @description: TODO+
 * 为了充分发挥GPU算力，需要尽可能多的将任务交给GPU执行，现在有一个任务数组，数组元素表示在这1秒内新增的任务个数且每秒都有新增任务，
 * 假设GPU最多一次执行n个任务，一次执行耗时1秒，在保证GPU不空闲情况下，最少需要多长时间执行完成
 * @date 2024/3/11 15:22
 */
public class test077 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();  // 输入GPU一次最多执行的任务个数
        int length = scanner.nextInt();  // 输入任务数组长度
        int[] ints = new int[length];
        for (int i = 0; i < length; i++) {
            ints[i] = scanner.nextInt();  // 输入任务数组元素
        }
        scanner.close();

        int time = 0;  // 总耗时
        int more = 0;  // 余数

        for (int i : ints) {
            if (i + more > n) {
                more = i + more - n;  // 更新余数
            } else {
                more = 0;
            }
            time++;  // 增加执行时间
        }

        while (more > 0) {
            more -= n;  // 更新余数
            time++;  // 增加执行时间
        }

        System.out.println(time);  // 输出最少需要的时间
    }
}

